#ifndef WINSOCK_STUB_H_
#define WINSOCK_STUB_H_

//#include <RdcTransportLib/RdcBuffer.h>
#include <vector>

typedef void (*function_stub_t) (std::vector<char>&, std::vector<char>&);

void accept_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void closesocket_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void bind_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void connect_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void freeaddrinfo_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void FreeAddrInfoW_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void getaddrinfo_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void GetAddrInfoW_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void getpeername_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void getsockname_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void ioctlsocket_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void getsockopt_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void listen_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void recv_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void recvfrom_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void select_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void send_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void sendto_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void shutdown_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void socket_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void setsockopt_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void WSACleanup_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void __WSAFDIsSet_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void WSAGetLastError_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void WSASetLastError_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void WSASocket_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void WSAStartup_stub (
    __in  std::vector<char>& in_buf,
    __out std::vector<char>& out_buf
    );

void WSAAsyncSelect_stub (
	  __in  std::vector<char>& in_buf,
	  __out std::vector<char>& out_buf
	  );

#endif /* WINSOCK_STUB_H_ */
